Preparativos

library(sf)
library(dplyr)
library(ggplot2)
library(plotly)
library(leaflet)
library(DT)
felinos <-
  st_read(
    "C:/Users/gf0604-1/mapas/felinos/felinos.csv",
    options = c(
      "X_POSSIBLE_NAMES=decimalLongitude",
      #longitud decimal
      "Y_POSSIBLE_NAMES=decimalLatitude" #latitud decimal
    ),
    quiet = TRUE
  )

st_crs(felinos)<-4326
provincias <- 
  st_read(
    "C:/Users/gf0604-1/mapas/felinos/provincias.geojson", 
    quiet = TRUE
  ) %>%
  st_transform(4326)

Tabla

felinos %>%
  dplyr::select(species,
                eventDate,
                stateProvince,
                locality,
                decimalLongitude,
                decimalLatitude) %>%
  st_drop_geometry() %>%
  datatable(
    colnames = c(
      "Especie",
      "Fecha",
      "Provincia",
      "Localidad",
      "Longitud",
      "Latitud"
    ),
    options = list(
      pageLength = 10,
      language = list(url = '//cdn.datatables.net/plug-ins/1.10.11/i18n/Spanish.json')
    )
  )

Gráficos

grafico_felinos <-
  felinos %>%
  count(species) %>%
  ggplot(aes(x = reorder(species, n), y = n)) +
  geom_bar(stat = "identity") +
  ggtitle("Cantidad de felinos") +
  xlab("Cantidad") +
  ylab("Felinos") +
  coord_flip() + #cambiar ejes
  theme_minimal()

ggplotly(grafico_felinos)

Mapa

leaflet() %>%
  addTiles() %>% # capa base de OSM
  # # addPolygons(
  #   data = provincias,
  #   color = "black",
  #   fillColor = "transparent",
  #   stroke = TRUE,
  #   weight = 1.0,
  # ) 
  addCircleMarkers( # capa de registros de presencia (puntos)
    data = felinos,
    stroke = F,
    radius = 4,
    fillColor = 'blue',
    fillOpacity = 1 # numero entre 0 y 1
  )